package com.qdairlines.common;

/**
 * @Description:返回值及返回描述
 * @author xiuge
 * @date 2016年7月11日上午9:27:33
 */
public enum ReturnCode {


	/*OK (200,"获取成功","success"),//[GET]：服务器成功返回用户请求的数据，该操作是幂等的
	CREATED (201,"操作成功","success"),//[POST/PUT/PATCH]：用户新建或修改数据成功
	//Accepted(200,"获取成功","success"),//表示一个请求已经进入后台排队（异步任务）
	NO_CONTENT(204 ,"删除成功","success"),//[DELETE]：用户删除数据成功

	INVALID_REQUEST(400,"操作失败","success"),//[POST/PUT/PATCH]：用户发出的请求有错误，服务器没有进行新建或修改数据的操作，该操作是幂等的
	Unauthorized(401 ,"未认证","success"),//表示用户没有权限（令牌、用户名、密码错误）
	Forbidden (403,"权限不足","success"),//表示用户得到授权（与401错误相对），但是访问是被禁止的
	NOT_FOUND(404 ,"记录不存在","success"),//[GET]：用户发出的请求针对的是不存在的记录，服务器没有进行操作，该操作是幂等的
	Not_Acceptable(406 ,"请求格式错误","success"),//[GET]：用户请求的格式不可得（比如用户请求JSON格式，但是只有XML格式）
	Gone (410  ,"获取成功","success"),//用户请求的资源被永久删除，且不会再得到的
	Unprocesable_Entity (422   ,"资源不存在","success"),//[POST/PUT/PATCH] 当创建一个对象时，发生一个验证错误
	INTERNAL_SERVER_ERROR (500   ,"获取成功","success"),//服务器发生错误，用户将无法判断发出的请求是否成功*/

	No_Err(1,"请求成功","success"),
	Err_RequestFailed(-1,"请求失败","error"),
	Err_PassengerAlreadyExit(-2,"该旅客已被保存过","error"),
	Err_NoTokenFind(-38,"在Header中未找到Token","error"),
	;
	
	private int code;
	
	private String description;
	
	private String type;
	
	ReturnCode(int code,String description,String type) {
		this.code=code;
		this.description=description;
		this.type=type;
	}
	
	public int getCode(){
		return this.code;
	}
	
	public String getDescription(){
		return this.description;
	}
	
	public String getType(){
		return this.type;
	}
	
	public static ReturnCode stateOf(int index) {
		
		for (ReturnCode state:values()) {
			if (state.getCode()==index) {
				return state;
			}
		}
		return null;
	}
}
